package com.dhcc.DRGsHosp.facade;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

import org.openkoala.koala.commons.InvokeResult;

import com.dhcc.DRGsHosp.facade.dto.IndexCalDTO;


/**
 * @title		:ForeCastFacade.java
 * @description	:
 * @author		:lileizheng
 * @date		:2015年6月8日
 * @version     :1.0
 * @copyright   :DHCC 2013-2014 
 */
public interface ForeCastFacade {


	/**
	 * @methodname    :loadDepDisParam
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2015年7月13日
	 */
	public InvokeResult loadDepDisParam(IndexCalDTO dto);

	/**
	 * @methodname    :ata
	 * @description   : 保存科室重点病种参数 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2015年7月14日
	 */
	public InvokeResult saveParamDepDisData(IndexCalDTO dto);

	/**
	 * @methodname    :getHospData
	 * @description   : 获取全院与计算数据
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2015年7月17日
	 */
	public InvokeResult getHospData(IndexCalDTO dto);

	/**
	 * @methodname    :saveParamDepGroupDisData
	 * @description   : 保存科室组病种参数
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2015年7月18日
	 */
	public InvokeResult saveParamDepGroupDisData(IndexCalDTO dto);

	/**
	 * @methodname    :getNewPlan
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @param addYear 
	 * @param depCode 
	 * @return        :
	 * @date          :2017年3月20日
	 */
	public InvokeResult getNewPlan(String depCode, String addYear);

	/**
	 * @methodname    :savePlan
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2017年3月20日
	 */
	public InvokeResult savePlan(Map<String, Object> json);

	/**
	 * @methodname    :delPlan
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2017年3月20日
	 */
	public InvokeResult delPlan(String depCode, String addYear);

	/**
	 * @methodname    :getNewPlanDRGs
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2017年3月21日
	 */
	public InvokeResult getNewPlanDRGs(String depCode, String addYear);

	/**
	 * @methodname    :saveNewPlanDRGs
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @param addYear 
	 * @param depCode 
	 * @return        :
	 * @date          :2017年3月21日
	 */
	public InvokeResult saveNewPlanDRGs(List<Map<String, Object>> json, String depCode, String addYear);

	/**
	 * @methodname    :changeYear
	 * @description   :实时同步year
	 * @param         :
	 * @author        :lileizheng
	 * @return        :
	 * @date          :2017年8月26日
	 */
	InvokeResult changeYear(String year);

	/**
	 * @methodname    :saveToQuotamanage
	 * @description   : 
	 * @param         :
	 * @author        :lileizheng
	 * @param planYear 
	 * @param saveType 
	 * @param stdType 
	 * @param roleName 
	 * @return        :
	 * @date          :2017年8月26日
	 */
	InvokeResult saveToQuotamanage(String stdType, String saveType, String planYear, String roleName);
/**
 * 
 *  saveExpected.  
 *  @Description：保存测算数据
 *  @Author LiuHongjun
 *  @param quotaStr
 *  @param saveType
 *  @param type
 * @param roleName 
 * @param planYear 
 * @param dateFrom 
 *  @return 
 * @throws ParseException 
 *  @Date:2017年10月19日下午3:56:48
 */
public InvokeResult saveExpected(String quotaStr, String saveType, String type, String roleName, String planYear, String dateFrom) throws ParseException;

public InvokeResult getLastResultHosp(String saveType, String stdYear, String roleName, String dateFrom, String dateTo);

public InvokeResult getLastResultDepGroup(String saveType, String stdYear, String roleName, String dateFrom, String dateTo);

public InvokeResult getLastResultDep(String saveType, String stdYear, String roleName, String dateFrom, String dateTo);

public InvokeResult quotasComputer(String adjustParameter, String dateFrom, String dateTo, String forecastYear, String hospCode, String monitorType);

public List<Map<String, Object>> findDepGroupForeCast(String dateFrom, String dateTo, String forecastYear, String monitorType);

public InvokeResult saveParamDepData(String adjustParameter, String dateFrom, String dateTo, String forecastYear);

public List<Map<String, Object>> loadDepParam(String pardepgroupCode, String dateFrom, String dateTo, String forecastYear);

}
